package com.lh0811.forge.pserv.uacs.api.param;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.io.Serializable;

/**
 * 开发平台-岗位数据权限规则
 *
 * @author
 * @email
 * @date 2024-05-24 15:39:46
 */
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class UacsDataRuleUpdateParam implements Serializable {

    @NotNull(message = "主键不能为空")
    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long id;

    @NotNull(message = "数据表不能为空")
    @Schema(description = "数据表", requiredMode = Schema.RequiredMode.REQUIRED)
    private String dataTable;

    @Schema(description = "数据表名称")
    private String dataTableName;

    @NotNull(message = "数据表维度字段不能为空")
    @Schema(description = "数据表维度字段", requiredMode = Schema.RequiredMode.REQUIRED)
    private String dataDimension;

    @Schema(description = "数据表维度字段名称")
    private String dataDimensionName;

    @NotNull(message = "规则逻辑不能为空")
    @Schema(description = "规则逻辑：1-等于 2-不等于 3-大于 4-小于 5-大于等于 6-小于等于 7-包含 8-不包含 9-在列表中 10-不在列表中", requiredMode = Schema.RequiredMode.REQUIRED)
    private String ruleLogic;

    @Schema(description = "逻辑值来源： 1-后台维护 2-系统数据源 3-系统提供")
    private String ruleValueSource;

    @Schema(description = "逻辑值")
    private String ruleValue;

    @Schema(description = "获取数据源列表的URL")
    private String ruleSourceUrl;

    @Schema(description = "系统数据值提供器全类名")
    private String ruleValueProvider;

    @Schema(description = "1-字符串 2-数字")
    private String valueType;

    @Schema(description = "1-单值 2-列表 3-字典")
    private String valueStruct;

    @Schema(description = "备注")
    private String notes;


}
